package com.decent.service;

import com.decent.entity.Product;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * @author decent
 */
public interface ProductService {

    /**
     * 获取热门产品
     * @return List{id, productName, picUrl, sellPrice, officialPrice}
     */
    public List<Product> listHotProduct();

    /**
     * 获取产品列表
     * @param brandId 品牌ID
     * @param haveStock 仅看有货	默认值:true
     * @param sortType 排序种类
     *                 	<p>- PRICE_BOTTOM_TO_HIGH	价格从底到高</p>
     *                 	<p>- PRICE_HIGH_TO_BOTTOM	价格从高到底</p>
     *                  <p>- DISCOUNT_BOTTOM_TO_HIGH	折扣由底到高</p>
     *                 	<p>- DISCOUNT_HIGH_TO_BOTTOM	折扣由高到底</p>
     * @param pageNumber 页码
     * @param pageSize 每页数量
     * @return
     */
    public PageInfo<Product> listProduct(Long brandId, Boolean haveStock, String sortType,
                                         Integer pageNumber, Integer pageSize);

    /**
     * 根据产品id 获取产品详情
     * @param productId 产品id
     * @return product
     */
    public Product productDetailsByProductId(Long productId);

    /**
     * 根据产品id 修改库存
     * @param productId 产品id
     * @param stock 库存
     * @return 影响行数
     */
    public Integer updateStockByProductId(Long productId, Integer stock);

    /**
     * 根据产品id 获取产品详情
     * @param productId 产品id
     * @return product
     */
    public Product goodsNoByProductId(Long productId);
}
